home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CRYPT15.ZIP / ANTI-MON.TXT < prev    next >
Text File  |  1980-01-01  |  4KB  |  68 lines

  1. ANTI-MON.ASM uses an extremely fast and simple method to detect and remove 
  2. two versions of VSAFE.  The following tables list the information obtained by 
  3. using PC-TOOLS to determine the system interrupt vector values prior to and 
  4. subsequent to the installation of VSAFE and DEBUG to scan the segment of the 
  5. installed VSAFE for the offsets containing the pre-installation (original) 
  6. vector values. 
  7.  
  8. VSAFE v1.0:
  9.                               TBL.   ORIGINAL   VSAFE      ORIG. VECT.        
  10. FUNCTION        INT #  OWNER  OFF.   VECTOR     VECTOR     VSAFE ADDR.          
  11. --------        -----  -----  -----  ---------  ---------  -----------          
  12. BIOS disk        13    SYS    004C   0070:121F  12A6:1039   12A6:1967           
  13. BIOS keyboard    16    BIOS   0058   F000:E82E  12A6:12CD   12A6:196B           
  14. DOS prog. term.  20    SYS    0080   02B8:16F5  12A6:138C   12A6:196F           
  15. DOS func. call   21    SYS    0084   02B8:1716  12A6:15F7   12A6:1977           
  16. DOS TSR          27    SYS    009C   02B8:79ED  12A6:1887   12A6:197B           
  17. DOS multiplex    2F    SYS    00BC   0070:1CAF  12A6:2476   12A6:242A           
  18. Revect. INT 13h  40    BIOS   0100   F000:EC59  12A6:1254   12A6:197F           
  19.  
  20. VSAFE (MS-DOS 6.0):
  21.                               TBL.   ORIGINAL   VSAFE      ORIG. VECT.        
  22. FUNCTION        INT #  OWNER  OFF.   VECTOR     VECTOR     VSAFE ADDR.        
  23. --------        -----  -----  -----  ---------  ---------  -----------        
  24. IRQ1 - keyboard  09    BIOS   0024   F000:E987  12A6:02B3   12A6:02AF         
  25. BIOS keyboard    16    BIOS   0058   F000:E82E  12A6:05DD   12A6:0DB7         
  26. BIOS disk        13    SYS    004C   0070:121F  12A6:0352   12A6:0DB3         
  27. DOS prog. term.  20    SYS    0080   02B8:16F5  12A6:06BC   12A6:0DBB         
  28. DOS func. call   21    SYS    0084   02B8:1716  12A6:0940   12A6:0DC3         
  29. DOS TSR          27    SYS    009C   02B8:79ED  12A6:0C0C   12A6:0DC7         
  30. DOS multiplex    2F    SYS    00BC   0070:1CAF  12A6:1440   12A6:141E         
  31. Revect. INT 13h  40    BIOS   0100   F000:EC59  12A6:05CB   12A6:0DCB         
  32.  
  33. The functions listed are those stolen by VSAFE.  Incredibly, the original 
  34. vector table values are stored within VSAFE unecrypted and at offsets which do 
  35. not vary within a given version! 
  36.  
  37. The ANTI-MON.ASM routine FIND_AV_MON simply compares the vector offset values 
  38. in the system interrupt vector table with the known, absolute offsets (from 
  39. analysis) of the VSAFE interrupt handlers.  Only the vectors normally stolen 
  40. by VSAFE are checked.  When a user-selectable number of matches are found, the 
  41. detection routine indicates to the calling routine that VSAFE is present and 
  42. supplies the VSAFE version and the value of the segment in which VSAFE 
  43. resides. 
  44.  
  45. The VSAFE segment value passed is then used by the NEUT_AV_MON routine, in 
  46. conjunction with its table of absolute offsets which correspond to the 
  47. locations of the original vector values stored within VSAFE.  The original 
  48. values, with the exception of those for the keyboard interrupts, are simply 
  49. moved back to their proper locations in the system interrupt vector table.  
  50. The keyboard vectors are not restored in order to allow continued, normal 
  51. interaction by the otherwise neutralized VSAFE with its hypothetical user. 
  52.  
  53. After "de-installation", VSAFE continues to look like it is functioning 
  54. normally.  Only when the MS-DOS 6.0 version of VSAFE is requested to remove 
  55. itself does anything which might be considered suspicious occur.  It will not 
  56. remove itself because the restoration of its stolen interrupt vectors to their 
  57. original values fools it into believing that other TSRs have been installed 
  58. after it.  This could be avoided by restoring the original vector table values 
  59. "on the fly" and only as needed to avoid detection of viral activity, 
  60. returning them to VSAFE values afterwards.  Modifications to the detection and 
  61. removal routine equates and offset data tables would allow them to be used to 
  62. detect and remove additional types or versions of TSR anti-viral monitors, as 
  63. long as they are all as carelessly designed as VSAFE.  
  64.  
  65.  
  66. Willoughby 
  67.  
  68.